(ns controllers.misc
  (:import 
           [java.lang Math ]
           )  
  )

(defn <<
  [x n]
  (bit-shift-left x n)
  )
(defn >>
  [x n]
  (bit-shift-right x n)
  )

(defn &
  [x n]
  (bit-and x n)
  )

(defn crvena-komponenta
  [boja]
 (& (>> (Math/abs boja) 16) 0xff)   
  )

(defn zelena-komponenta
  [boja]
 (& (>> (Math/abs boja) 8) 0xff) 
  )

(defn plava-komponenta
  [boja]
  (& (Math/abs boja) 0xff)
  )

(defn pixel
  [r g b]
  (bit-or 
        (<<  r 16) 
        (<<  g 8)
        (*  b 1))
  )

(defn og [vrednost max]
  (if 
    (> (Math/abs vrednost) max) 
    (if (neg? vrednost) (* -1 max) max) 
    vrednost)
  )